From: kfraser@localhost.localdomain Date: Wed, 18 Oct 2006 16:17:15 +0000 (+0100) Subject: [ACM] Keep stream aligned. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~15589^2~49 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/success//%22http:/www.example.com/cgi/success/?a=commitdiff_plain;h=2f04c3f01e2a58737e6895f3c22dd3fca1735c29;p=xen.git [ACM] Keep stream aligned. Signed-off-by: Tristan Gingold --- diff --git a/tools/security/secpol_xml2bin.c b/tools/security/secpol_xml2bin.c index 477991f28c..c316250e41 100644 --- a/tools/security/secpol_xml2bin.c +++ b/tools/security/secpol_xml2bin.c @@ -979,13 +979,15 @@ unsigned char *write_policy_reference_binary(u_int32_t * len_pr) unsigned char *buf, *ptr; struct acm_policy_reference_buffer *pr_header; u_int32_t len; + u_int32_t name_len; if (policy_reference_name == NULL) { printf("ERROR: No policy reference name found.\n"); exit(EXIT_FAILURE); } - len = (sizeof(struct acm_policy_reference_buffer) + - strlen(policy_reference_name) + 1); + name_len = strlen(policy_reference_name) + 1; /* strend '\0' */ + len = sizeof(struct acm_policy_reference_buffer) + name_len; + len = (len + 7) & ~7; /* Alignment. */ buf = malloc(len); ptr = buf; @@ -994,9 +996,9 @@ unsigned char *write_policy_reference_binary(u_int32_t * len_pr) ("ERROR: out of memory allocating label reference buffer.\n"); exit(EXIT_FAILURE); } + memset (buf, 0, len); pr_header = (struct acm_policy_reference_buffer *) buf; - pr_header->len = - htonl(strlen(policy_reference_name) + 1 /* strend \'0' */ ); + pr_header->len = htonl(name_len); ptr += sizeof(struct acm_policy_reference_buffer); strcpy((char *) ptr, policy_reference_name);